package com.iatinspur.learn2;


import java.io.IOException;
import java.lang.management.GarbageCollectorMXBean;
import java.lang.management.ManagementFactory;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

/**
 * 25集  GC调优方法
 *  todo  步骤
 *        调优手段
 *        1.优化基础jvm参数
 *        2.减少对象产生
 *        3.更换垃圾回收器
 *        4.优化垃圾回收参数
 *
 *
 *
 *        jvm 优化参数
 *        -Xms1g
 *        -Xmx1g
 *        -Xss256k
 *        -XX:MaxMetaspaceSize=512m
 *        -XX:+DisableExplicitGC
 *        -XX:+HeapDumpOnOutOfMemoryError
 *        -XX:HeapDumpPath=/opt/logs/my-service.hprof
 *        -XX:+PrintGCDetails
 *        -XX:+PrintGCDateStamps
 *        -Xloggc:文件路径
 */
public class Learn_13_JVM {
    public static List<Object> list = new ArrayList<Object>();
    public static byte[] nc ;

    public static byte[][] ncs =new byte[10][];

    /**
     * 8.17
     * -Xmn1g
     *
     *  -Xmx5g -Xms5g 开始执行
     *
     *  todo 1.啥也没干 100秒  fullGC 64次 4.206s  minorGC 45次 3.176s 吞吐量  92%
     *       -Xmn100m                                                 2.053
     *       -Xmn10m                                                  2.053
     *
     * @param args
     * @throws InterruptedException
     * @throws IOException
     */
    public static void main(String[] args) throws InterruptedException, IOException {
        /**
         * Copy
         * MarkSweepCompact
         */
        int count = 0;
        while(true){
            for (int i = 0; i < 10; i++) {
                ncs[i]= new byte[1024 * 1024 *10*((int)(Math.floor(Math.random()*9))+1)];
            }
            Thread.sleep(1000);
        }
    }

}
